Requirements for Stack Overflow

Learn about the requirements for the Stack Overflow.

We'll cover the following

In this lesson, we’ll list the requirements of Stack Overflow. This is a very crucial step as requirements define the scope of a problem, so getting them right from the interviewer and understanding them well will make the design of the rest of the system smooth and easy.

We’ll use the notational convention to identify each requirement with a unique label "Rn", where "R" is short for Requirement and "n" is a natural number.

Requirement collection#

The requirements for Stack Overflow are defined below:

R1: Any guest can view questions and search questions by tag, username or words.

R2: Users should be able to post new questions and add answers to an open question.

R3: Users can flag a question, answer, or comment if anything goes against the community guidelines.

R4: A user can upvote, downvote, and add comments to a question or answer, while they can only upvote a comment.

R5: Users can vote to delete or vote to close off questions for community-specific reasons. However, they can only vote to delete an answer.

R6: Any user can add a bounty to their question to attract more answers.

R7: Moderators can close a question or restore an already deleted question. Moderators can also delete answers.

R8: The system should send the user a notification whenever there has been an interaction with them, such as the user’s question receiving an answer, earning a badge, or someone upvoting or downvoting their post.

R9: Users can earn badges for their helpful answers or comments.

R10: The system should also be able to determine the most popular tags used in questions.

R11: Users can add tags to their questions. A tag is a word or phrase that describes the topic of the question.

We've identified our requirements for the problem, and in the next lesson, we will define different use cases of Stack Overflow.

Getting Ready: Stack Overflow

Use Case Diagram for Stack Overflow